<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 【全局作用域】
        // 在代码中任意地方都能访问到的对象拥有全局作用域。
        //(即在全局作用域中定义的变量可以在任何地方使用。)
        // 全局作用域在页面打开时创建,在页面关闭时销毁。

        // 【情况一:所有未定义直接赋值的变量自动声明为拥有全局作用域】 
        function Fun1(){
        a ='未定义直接赋值的变量'; 
        var b ='内层变量'
    }
        Fun1();
        console.log(a); //未定义直接赋值的变量 
        console.log(b); //b is not defined

        // 【情况二:最外层函数和最外层函数外面定义的变量拥有全局作用域】 
        var A ='最外层变量'; //最外层变量

        function outFun(){ //最外层函数
            var B ='最外层函数的内层变量'
            function innnerFun(){ //内层函数
                var c = '内层函数的内部变量'
            }
        }
        console.log(A);//最外层变量
        //console.log(B); //B is not defined 
        outFun()
        //innerfun() //innerfun is not defined
        //console.log(C); //c is not defined
        
        // 【情况三:所有window对象的属性拥有全局变量】
        // 在全局作用域中有一个全局对象window,他代表的浏览器的窗口，由浏览器创建。
        // 一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location
    </script>
</body>
</html>